package com.zzl.bonds.ticket.service.common;

import com.zzl.bonds.ticket.dto.finance.SupplierCreditListDto;
import com.zzl.bonds.ticket.dto.finance.TicketFinanceListDto;
import com.zzl.general.common.exception.SysException;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * @author gull
 * @date 2022/3/2 20:55:35
 */
public interface TicketFinanceHandService {

    /**
     * 设置融资列表票据处理情况及气泡展示内容
     *
     * @param ticketList 票据集合
     * @throws SysException 当ticket对象没有规定的方法时抛出异常
     */
    void setFinanceTicketHandleSituation(List<?> ticketList) throws SysException;

    /**
     * 设置融资列表票据处理情况及气泡展示内容
     * 根据融资审核状态判断
     *
     * @param ticket 票据集合
     * @throws SysException 当ticket对象没有规定的方法时抛出异常
     */
    void setFinanceOneTicketHandleSituation(Object ticket) throws SysException;
    /**
     * 设置 融资按钮操作
     *
     * @param ticketList 融资按钮
     */
    void setFinanceTicketOperates(List<?> ticketList) throws SysException;
    /**
     * 设置 融资复核按钮操作
     *
     * @param ticketCheckList 融资复核按钮
     */
    void setFinanceTicketCheckOperates(List<TicketFinanceListDto> ticketCheckList, HttpSession session);
    /**
     * 设置 融资审批按钮操作
     *
     * @param ticketCheckList 融资审批按钮
     */
    void setFinanceTicketApproveOperates(List<TicketFinanceListDto> ticketCheckList, HttpSession session);
    /**
     * 设置 融资签署按钮操作
     *
     * @param ticketCheckList 融资签署按钮
     */
    void setFinanceTicketSignOperates(List<TicketFinanceListDto> ticketCheckList, HttpSession session);

    /**
     * 设置 额度管理-融资额度列表按钮
     *
     * @param ticketCheckList 融资额度修改和详情按钮
     */
    void setFinanceCreditOperates(List<SupplierCreditListDto> ticketCheckList, HttpSession session);
}
